微软WS2016原生分布式存储:还在追赶VSAN?
随着Windows Server 2016(以下简称:WS2016)正式发布的日期临近,微软已经开始了一些技术方面的宣传。本次在WS2012(R2)之后再次迎来大版本,Storage Spaces存储功能上有些亮点。正好结合我之前学习的关于VSAN和传统企业存储方面有限的知识,跟大家简单聊聊。
本文主要议题如下:
1、 Windows Server 2016的软件定义存储&超融合
2、 延伸集群是同步复制还是双活?
3、 重复数据删除增强:仍基于文件系统
4、 分层存储、RDMA网卡要求和数据保护机制
个人感觉,在云计算/虚拟化的时代,微软服务器操作系统处于两面受敌的状况,一方面企业级市场在互联网行业的影响下越来越多地接受开源Linux;另一方面Hyper-V虚拟机平台还要面对强大的对手VMware。不过这也不完全是坏事,逆水行舟不进则退。
为什么本文使用了“追赶VSAN”的标题呢?因为在4年前我整理过一篇内容《Hyper-V 3.0新增存储特性:挑战vSphere?》,有同行朋友说换成追赶这个词比挑战更合适,那么到今天这种状况有没有改变呢?
如上图,WS2016加入了Storage Spaces Direct(简称S2D)和Storage Replica(简称SR)存储复制这两个新功能。另外增强集群(站点感知的集群、滚动OS更新)功能,让我感觉是在底层提供了一个“双活”存储?其具体实现程度我们会在下文中介绍。
根据微软的License政策,只有Datacenter版本的Server 2016才提供Storage Spaces Direct和Storage Replica(应该是免费),Standard及以下的版本没有这些高级存储特性。
WindowsServer 2016的软件定义存储&超融合
上面左边的Scale out文件服务器集群节点在WS2012的Storage Spaces中就支持,由于后端需要共享连接的SAS JBOD其扩展规模受限,通常2节点HA的配置最常见。另外,它还支持双校验盘保护(相当于软RAID 6)。
记得我在《另类分布式存储:ZFS+SAS交换已经有人在搞?》一文中曾经介绍过利用SAS交换机来增强扩展能力的方案。不过实际上由于SAS Switch在这种用法中还不够成熟,所以没有看到微软和Nexenta(ZFS)对此类技术正式宣传。
右边的Storage Spaces Direct就是WS2016新加入的Shared-nothing、全分布式存储。每个集群节点只需要DAS本地存储连接,就可以简单扩展并组成一个存储池。目前能够支持SATA硬盘、SSD和NVMe SSD,当然SAS驱动器也是可以的,只是在这里用不到双端口功能。
很显然,VMware VSAN属于右边这一类,关于数据保护方式、SSD/HDD混合存储等方面的对比,我会在后面陆续讨论。
Storage Spaces Direct的部署选择——超融合、融合(分解,这里指计算/存储)的英文和示意图我想大家都不陌生了。这里只想说一个微软的特点,存储网络Fabric协议为SMB3,这样基本上就限制在Windows和Hyper-V应用环境了。
相比之下,VSAN的网络连接也是私有协议,即无论是否超融合部署,只能跑VMware自己的ESXi虚拟机。好在vSphere的市场占有率大,这也是VMware一直宣传的对VSAN推广有利之处。
如上图,非超融合的部署方式就是Scale-Out文件服务器,或可称为集群NAS了。文件系统方面,CSVFS(集群共享卷)上的ReFS弹性文件系统已经替代NTFS成为主要选择。
相比之下,VSAN被人们看作是VMFS的一种扩展,官方将其称为“对象存储”是针对上面的虚拟机磁盘文件而言。而我更习惯将VSAN看成块设备,架构简单是它的一大特点,也包括层次上的简单。
延伸集群是同步复制还是双活?
根据这里的资料,微软Storage QoS的策略针对每VHD、VM、服务或者租户级别,可定义最小和最大IOPS。
我在今年2月撰写的《全闪存专享:VSAN 6.2重复数据删除、纠删码浅析》一文中也提到了QoS,传统存储在这方面也不甘落后,比如戴尔最近推出的SCOS 7阵列软件版本,也加入了对QoS的支持。大家都提到了可避免“吵闹的邻居(noise neighbour)”问题。
Stretch Cluster(延伸集群)这个词VSAN也已经提出了有一段时间。如上图示例,在Manhattan和Jersey City的两个数据中心之间隔着一条Hudson River,从节点1、2向节点3、4做基于SMB3的同步复制。再加上自动切换的描述,我理解这个可能还不是真正的双活?记得Veritas资深架构师黄海峰在《ServerSAN的数据保护和容灾》中所讲,VSANStretched Cluster是真双活,而Nutanix在这方面要差一点。
延伸阅读:《存储极客:大话“双十一”与经济适用型双活》
在网络链路上的要求,微软与其他厂商都差不多。尽管理论上光速在5ms之内能跑1500km往返,但由于光纤介质、交换机、路由器、防火墙这些,再加上财力限制等,最终结果是绝大多数用户的同步复制都选择了30-50km。
关于日志卷,推荐放在闪存上,可以理解为复制的缓冲区。当线路出现中断或者抖动时,较大的log允许复制的快速恢复。这还让我想起了戴尔SC(Compellent)的Semi-sync replication。
如上图,作为企业级双控阵列,Dell SC除了传统的同步和异步复制之外,还支持Semi-sync(半同步,也可叫实时)复制。该功能应该不需要快照来触发,每一个写入IO提交到源端存储即可ack返回,同时会镜像每一个写入IO到目标端存储。在其他品牌上我也看到过类似的技术,Dell SC能够支持同步/异步复制的在线切换应该也是有赖于此。
重复数据删除增强:仍基于文件系统
再来看看重复数据删除。在WS2012 R2版本中,支持的Dedupe卷不超过8-10TB,针对每个卷都是单任务,也就是限制单CPU(Core)和单一I/O队列,根据微软资料该版本的处理速度为50MB/s。重删的原理是将文件分割成大小可以改变 (32-128 KB) 的小区块、确定重复的区块。
可变长度重复数据删除的性能开销通常要大一些,多用于备份场景。与之相比,VSAN6.2和Dell SCOS 7.0中的重删/压缩都是4KB块级定长,适用于主存储和全闪存配置。
如上图,WS2016会将每个卷上的重复数据删除处理改为多任务、I/O队列并发,性能估计会比之前有提高。而Dell SCOS 7.0从开始加入重删就是支持多核/多线程的。
在这个界面中我们看出,Windows重复数据删除是后处理方式,有选项定义超过多少天(不活跃)的文件做去重;并且可以排除指定的文件类型(扩展名),因此该功能在WS2012中还要依赖于NTFS文件系统。
我以前曾经写过:“VSAN6.2中的数据缩减特性,和戴尔SC阵列的增强型压缩有些类似,都是通过与自动分层存储(Tier)/缓存分层(Cache)机制相结合,其重删/压缩动作成为定期执行的后台任务,从而有效避免了数据写入高性能分层时的性能影响。”
关于全闪存阵列的重复数据删除这个话题后续有机会再单独讨论。
分层存储、RDMA网卡要求和数据保护机制
最后我们再来补充几点微软关于新版本Storage Spaces的技术细节。
首先是混合存储池的处理机制。在微软WS2012的Storage Spaces架构中,SSD+HDD用于冷热数据的分层,同时SSD还划分少量空间兼做Write-Back Caching(写回式缓存),这种设计与VSAN中高速SSD兼做读/写缓存的机制不太一样,与DellSC的自动分层存储永远写入最快分层的机制也有所不同。
传统的自动分层存储,其可用容量为不同分层之和(利用率比SSD缓存要高),但是对短时间内出现的“数据热点”响应要差一些。Dell SC的分层技术属于“特别”一些的。
扩展阅读:《存储极客|自动分层存储PK. SSD缓存》
而新的Storage Spaces Direct支持下列3种硬盘/SSD配置方式:
1. NVMe+ SAS或SATA SSD
2. NVMe+ SAS或SATA HDD
3. SAS或SATA SSD +SAS或SATA HDD
既然为NVMe考虑了,听说有的用户测试性能还不错。单看组成形式和VSAN比较接近,具体实现从下图中或许能够先了解一点。
如上图,SSD可能还是兼顾从HDD中定期移动来的“热数据”,以及写“日志”(Write-Back Cache)。
据了解Storage Spaces Direct对网卡的要求是:“每台集群节点,最少应配置 1 Port 10GbE 网卡,并且必须支持 RDMA 特色功能(RoCE、iWARP),目前支持的网卡厂商有Mellanox(CX3-Pro)、Chelsio(T5)、Avago/Emulex(Skyhawk)...等。”
RDMA可以保证较好的性能,但也对限制了端到端硬件的选择范围。VSAN、ScaleIO和Ceph等都没有这个限制,用普通的万兆就可以。不知OS和RDMA这两点会不会影响Storage Spaces Direct的应用普及?
目前我还没看到微软讲Storage Spaces Direct的数据保护机制,从上图来看镜像——至少2副本是肯定支持的。
至于VSAN,应该是一开始就支持1-4个副本,6.2版本有加入了容量利用率更高的纠删码(只针对全闪存配置,我以前解释过这样设计的原因)。
还有集群节点数支持,目前的预览版(Windows Server 2016 TP4)的Storage SpacesDirect支持4-16个节点。在TP2版本时最多支持12 台集群节点。
VSAN单集群的扩展能力已经达到了64节点,ScaleIO和Ceph理论支持的数量更多,实际应用中几十个节点的效率还是不错的。
更多具体技术规格,请大家以WS2016正式版本发布的信息为准。
注:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。进一步交流技术,可以加我的QQ/微信:490834312。如果您想在这个公众号上分享自己的技术干货,也欢迎联系我:)
欢迎转发链接分享,请在本公众号发布2天后,才能转载本文。尊重知识,请必须全文转载,并包括本行及如下二维码。
感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage
长按二维码可直接识别关注